Solid-state drives (SSDs) store host/user data in storage media such as flash media. The flash media has certain read/write and endurance characteristics that need to be carefully managed. An SSD controller manages the flash media of the SSD to provide a reliable, high performance, and cost-effective data storage. The SSD controller needs to perform various internal background operations to prolong the life cycle and to provide reliable operation of the SSD. Examples of such internal background operations are recycling, garbage collection, data structure updates for a flash translation layer (FTL), various statistical and log updates, and cache offloads.
These background operations can take a substantial portion of a flash channel bandwidth and the resources of the SSD controller. Some of the background operations such as garbage collection and recycling are quite complex potentially causing significant interruptions to the host read/write operations. The bandwidth and latency observed by a host may fluctuate significantly due to the internal background operations of the SSD.